Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / scripts / ci / github-draft-release-upload-assets.sh

Displaying Raw • Download


scripts/ci/github-draft-release-upload-assets.sh v4.6.0-rc.4 (421126e8) Text, 1.96 KB

T8b949e#!/usr/bin/env bash
T8b949e# Create the GitHub release as a draft if missing, then upload every file in DIR to that tag.
T8b949e# Skips electron-builder builder-debug.yml (and cosign bundles), including collision-renamed
T8b949e# copies (e.g. win__builder-debug.yml). Requires: gh, GH_TOKEN. TAG from TAG or GITHUB_REF_NAME.
Tffa657set -euo pipefail

Te6edf3DIRTff7b72=Ta5d6ff"Tffd700${Te6edf31Tb4b4b4:Tb4b4b4?path to directory of files to uploadTffd700}Ta5d6ff"
Te6edf3TAGTff7b72=Ta5d6ff"Tffd700${Te6edf3TAGTff7b72:-Tffd700${Te6edf3GITHUB_REF_NAMETb4b4b4:Tb4b4b4?set TAG or GITHUB_REF_NAMETffd700}Tffd700}Ta5d6ff"

Tff7b72if ! Tffa657command -v gh >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"gh is required" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi

Tff7b72if Tff7b72[ -z Ta5d6ff"Tffd700${Te6edf3GH_TOKENTff7b72:-Tffd700}Ta5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"GH_TOKEN is required" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi

Tffa657export GH_TOKEN

Tff7b72if Tff7b72[ -z Ta5d6ff"Tffd700${Te6edf3GH_REPOTff7b72:-Tffd700}Ta5d6ff" Tff7b72] Tff7b72&& Tff7b72[ -n Ta5d6ff"Tffd700${Te6edf3GITHUB_REPOSITORYTff7b72:-Tffd700}Ta5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657export Te6edf3GH_REPOTff7b72=Ta5d6ff"Te6edf3$GITHUB_REPOSITORYTa5d6ff"
Tff7b72fi

Tff7b72if ! gh release view Ta5d6ff"Te6edf3$TAGTa5d6ff" >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
gh release create Ta5d6ff"Te6edf3$TAGTa5d6ff" --draft --title Ta5d6ff"Te6edf3$TAGTa5d6ff" --notes Ta5d6ff"Automated draft release. Review assets and provenance before publishing."
Tff7b72fi

mapfile -d Ta5d6ff'' -t all < <Tff7b72(find Ta5d6ff"Te6edf3$DIRTa5d6ff" -type f -print0Tff7b72)

skip_noiseTff7b72(Tff7b72) Tff7b72{
Tffa657local Te6edf3baseTff7b72=Ta5d6ff"Te6edf3$1Ta5d6ff"
Tff7b72case Ta5d6ff"Te6edf3$baseTa5d6ff" Tff7b72in
builder-debug.yml Tb4b4b4| builder-debug.yml.cosign.bundleTff7b72) Tff7b72return T79c0ff0 Tb4b4b4;Tb4b4b4;
*__builder-debug.yml Tb4b4b4| *__builder-debug.yml.cosign.bundleTff7b72) Tff7b72return T79c0ff0 Tb4b4b4;Tb4b4b4;
Tff7b72esac
Tff7b72return T79c0ff1
Tff7b72}

Te6edf3filteredTff7b72=Tff7b72(Tff7b72)
Tff7b72for f Tff7b72in Ta5d6ff"Tffd700${Te6edf3allTb4b4b4[@]Tffd700}Ta5d6ff"Tb4b4b4; Tff7b72do
Te6edf3bTff7b72=Tff7b72$(basename Ta5d6ff"Te6edf3$fTa5d6ff"Tff7b72)
Tff7b72if skip_noise Ta5d6ff"Te6edf3$bTa5d6ff"Tb4b4b4; Tff7b72then
Tff7b72continue
Tff7b72fi
Te6edf3filteredTff7b72+=Tff7b72(Ta5d6ff"Te6edf3$fTa5d6ff"Tff7b72)
Tff7b72done
Te6edf3allTff7b72=Tff7b72(Ta5d6ff"Tffd700${Te6edf3filteredTb4b4b4[@]Tffd700}Ta5d6ff"Tff7b72)

Tff7b72if Tff7b72[ Ta5d6ff"Tffd700${#Te6edf3allTb4b4b4[@]Tffd700}Ta5d6ff" -eq T79c0ff0 Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffNo files under Tffd700${Te6edf3DIRTffd700}Ta5d6ff (after excluding electron-builder debug YAML)Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi

Tffa657declare -A seen
Tff7b72for f Tff7b72in Ta5d6ff"Tffd700${Te6edf3allTb4b4b4[@]Tffd700}Ta5d6ff"Tb4b4b4; Tff7b72do
Te6edf3bTff7b72=Tff7b72$(basename Ta5d6ff"Te6edf3$fTa5d6ff"Tff7b72)
seenTff7b72[Te6edf3$bTff7b72]Tff7b72=Tff7b72$((Tffd700${Te6edf3seenTb4b4b4[Te6edf3$bTb4b4b4]Tff7b72:-Te6edf30Tffd700} Tff7b72+ T79c0ff1Tff7b72))
Tff7b72done

Te6edf3STAGETff7b72=Tff7b72$(mktemp -dTff7b72)
Tffa657trap Ta5d6ff'rm -rf "$STAGE"' EXIT

Tff7b72for f Tff7b72in Ta5d6ff"Tffd700${Te6edf3allTb4b4b4[@]Tffd700}Ta5d6ff"Tb4b4b4; Tff7b72do
Te6edf3bTff7b72=Tff7b72$(basename Ta5d6ff"Te6edf3$fTa5d6ff"Tff7b72)
Tff7b72if Tff7b72[ Ta5d6ff"Tffd700${Te6edf3seenTb4b4b4[Te6edf3$bTb4b4b4]Tffd700}Ta5d6ff" -gt T79c0ff1 Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3relTff7b72=Ta5d6ff"Tffd700${Te6edf3fTb4b4b4#Ta5d6ff"Te6edf3$DIRTa5d6ff"Tb4b4b4/Tffd700}Ta5d6ff"
Te6edf3nameTff7b72=Ta5d6ff"Tffd700${Te6edf3relTb4b4b4//Tffea00\/Tb4b4b4/__Tffd700}Ta5d6ff"
Tff7b72else
Te6edf3nameTff7b72=Ta5d6ff"Te6edf3$bTa5d6ff"
Tff7b72fi
cp -- Ta5d6ff"Te6edf3$fTa5d6ff" Ta5d6ff"Te6edf3$STAGETa5d6ff/Te6edf3$nameTa5d6ff"
Tff7b72done

mapfile -t files < <Tff7b72(find Ta5d6ff"Te6edf3$STAGETa5d6ff" -type fTff7b72)
gh release upload Ta5d6ff"Te6edf3$TAGTa5d6ff" Ta5d6ff"Tffd700${Te6edf3filesTb4b4b4[@]Tffd700}Ta5d6ff" --clobber


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────